/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package prop;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 *
 * @author finfantasy
 */
public class Ranking {

    private static final int N = 15;
    private Posicion[] v = new Posicion[N];


    public Ranking(Posicion[] v) {
        resetear();
        for (int i = 0; i < v.length; ++i) {
            insertarIni(v[i].nombre, v[i].puntuacion, v[i].fecha);
        }
    }

    public void insertar(String name, int puntos) {
        if (v[N - 1].puntuacion < puntos) {
             v[N - 1].nombre = name;
             v[N - 1].puntuacion = puntos;
             v[N - 1].fecha = getDateTime();
        }
        ordena();
    }

    public void insertarIni(String name, int puntos, String fecha) {
        if (v[N - 1].puntuacion < puntos) {
             v[N - 1].nombre = name;
             v[N - 1].puntuacion = puntos;
             v[N - 1].fecha = fecha;
        }
        ordena();
    }

    public Posicion[] getRanking() {
        return v;
    }


    public void resetear() {
        for (int i = 0; i < N; ++i) {
            Posicion aux = new Posicion();
            aux.puntuacion = -1;
            aux.nombre = "";
            aux.fecha = getDateTime();
            v[i] = aux;
        }
    }

    private void ordena() {
        Posicion aux = new Posicion();
        for (int i = 0; i < N; ++i) {
            aux = v[i];
            int pos = i;
            for (int j = i + 1; j < N; ++j) {
                if (v[j].puntuacion > aux.puntuacion) {
                    aux = v[j];
                    pos = j;
                }
            }
            Posicion aux2 = new Posicion();
            aux2 = v[i];
            v[i] = v[pos];
            v[pos] = aux2;
        }
    }

    private String getDateTime() {
        DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
        Date date = new Date();
        return dateFormat.format(date);
    }
}
